#ifndef __parseNode_h
#define __parseNode_h

#include <map>
#include <string>
#include "SmartPointer.h"
#include "tNode.h"

class	parseNode
{
	int*							finalState;
	int								ci;
	SmartPointer<tNode>				iState;
	std::map<std::string, SmartPointer<tNode>>	open;
	std::map<std::string, SmartPointer<tNode>>	close;
	
public:
	parseNode(std::string&, int*, SmartPointer<tNode>&);
	~parseNode(){;}
	void				launchAStar();
	void				fusionLst(std::list<SmartPointer<tNode>>&, SmartPointer<tNode>);
	bool				checkEnd(SmartPointer<tNode>);
	void				showResult(SmartPointer<tNode>&);
};

bool				sortList(SmartPointer<tNode>&, SmartPointer<tNode>&);

#endif /*__parseNode_h*/